package com.chb.dao;

import com.chb.model.entity.Dept;
import com.chb.model.entity.Role;
import com.chb.model.entity.Staff;
import com.chb.model.vo.StaffAndDepartmentVo;
import com.chb.model.vo.StaffVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: 陈海彬
 * @date: Created in 2023/9/25 15:21
 * @description: 员工dao层
 * @modified By:
 * @version:1.0
 */
public interface StaffDao {

    /**
     * 查询是否有该手机号
     */
    public Staff getStaffByPhone(String phone);


    public Staff getStaffByPhoneAndStaffid(@Param("phone") String phone,
                                           @Param("staffid") Integer staffid);

    /**
     * 根据账号和密码查询用户信息
     *
     * @param name 账号
     * @param pwd  密码
     * @return 用户信息
     */
    public Staff selectByNameAndPwd(@Param("name") String name, @Param("pwd") String pwd);

    /**
     * 查询所有员工信息
     *
     * @return
     */
    public List<Staff> findAllStaffInfo(StaffVo staffVo);

    /**
     * 修改员工信息
     */
    public Integer updateStaff(Staff staff);

    /**
     * 部门员工统计————在职员工，获取数量
     */
    public List<StaffAndDepartmentVo> findStaffByBranchIdAndState(Integer branchId);

    /**
     * 根据账号id查询用户信息、职位、所属部门
     */
    public StaffVo getUserInfo(Integer staffId);

    /**
     * 修改员工头像
     */
    public void uploadStaffUrl(Staff staff);

    /**
     * 修改密码
     */
    public void updatePassWord(Staff staff);

    /**
     * 判断该员工是否为店长
     */
    public Staff getStaffByBranchId(Integer staffid);


    /**
     * 查询是否有该用户名
     *
     * @param staffid
     * @return
     */
    public Staff findStaffByStaffId(Integer staffid);

    /**
     * 判断用户名是否重复
     *
     * @param idCar
     * @return
     */
    public Staff findStaffByIdCar(String idCar);

    /**
     * 添加员工
     *
     * @param staff
     * @return
     */
    public Integer addStaff(Staff staff);

    /**
     * 修改员工信息分店信息
     */
    public Integer updateBranchid(Staff staff);

    /**
     * 新增部门排除管理部
     */
    public List<Dept> addfendAllDept();

    /**
     * 新增下拉框职位
     */
    public List<Role> addfindAllbRole();

    /**
     * 新增下拉框 状态为1
     */
    public List<Role> getBranchByStatus();
}
